package com.ts.api.module.test.service;

import com.gitee.apanlh.web.model.vo.RequestVO;
import com.ts.api.exp.ApiTestValidException;
import com.ts.api.module.test.message.ApiTestMessage;
import com.ts.api.module.test.message.ApiTestResultMessage;

/**
 *  API消息测试验证
 */
public interface ApiTestService {

    /**
     *  获取消息实体，出现异常直接抛出
     *
     *  @param  requestVO
     *  @return ApiTestMessage
     *  @throws ApiTestValidException
     */
    ApiTestMessage getMessage(RequestVO requestVO) throws ApiTestValidException;

    /**
     *  测试机构
     *
     *  @param  apiTestMessage  API测试消息
     *  @return ApiTestResultMessage
     */
    ApiTestResultMessage testOrg(ApiTestMessage apiTestMessage);

    /**
     *  半流程-测试平台
     *
     *  @param  apiTestMessage  API测试消息
     *  @return ApiTestResultMessage
     */
    ApiTestResultMessage testPlatV2(ApiTestMessage apiTestMessage);

    /**
     *  半流程回调拉取进件-测试平台apply
     *
     *  @param  apiTestMessage  API测试消息
     *  @return ApiTestResultMessage
     */
    ApiTestResultMessage testPlatV2PullApply(ApiTestMessage apiTestMessage);

    /**
     *  全流程-测试平台
     *
     *  @param  apiTestMessage  API测试消息
     *  @return ApiTestResultMessage
     */
    ApiTestResultMessage testPlatV3(ApiTestMessage apiTestMessage);
}
